梦入琼楼寒有月,行过石树冻无烟

Shell 判断与循环

与众多开发语言一样,Shell同样支持循环方法和判断方法,本文主要介绍if……else和for\while循环等,其他方法如读者有兴趣可自行进行学习。

test

Shell then主要用于检测条件是否成立,主要分为如下测试方法:

测试方法

数值测试

1
2
3
4
5
6
7
8
one=1
two=1
if test $[one] -eq $[two]
then
echo "相等"
else
echo "不相等"
fi
ID DA
-eq 等于为真
-ne 不等于为真
-gt 大于为真
-ge 大于等于为真
-lt 小于则为真
-le 小于等于则为真

字符串测试

1
2
3
4
5
6
7
8
9
one=1
two=1
if test $[one] = $[two]
then
echo "相等"
else
echo "不相等"
fi

ID DA
= 等于则为真
!= 不等于则为真

I/O 测试

1
2
3
4
5
6
7
8
one=1
two=1
if test -e home.js
then
echo "存在"
else
echo "不存在"
fi
ID DA
-e 文件存在为真
-r 文件可读为真
-w 文件可写为真
-x 文件可执行为真
-d 文件和目录存在则为真
-f 文件是普通文件则为真
-c 文件为特殊文件则为真

判断

判断的基本格式

1
2
3
4
5
6
7
8
9
if [Requirement]
then
// code
elif [Requirement2]
then
// code
else
// code
fi

判断是否等于

1
2
3
4
5
6
7
8
9
10
11
12
a=10
b=20

if [ $a == $b ]
then
echo "one 等于 two"
elif [ $a != $b ]
then
echo "one 不等于 one"
else
echo "不符合预期"
fi

循环

循环格式

for 循环

1
2
3
4
for cycle_name in data
do
// code
done

while 循环

1
2
3
4
while Requirement 
do
// code
done

循环数值

for 循环

1
2
3
4
for var in 1 2 3 4 5 6 7 8 9
do
echo $var
done

while 循环

1
2
3
4
5
6
7
#! /bin/bash
var="Good"
while (( $var<=3 ))
do
echo $var
let "$var++"
done
⬅️ Go back